package cn.gz.ibix.ibix_library.http;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

import java.lang.reflect.Type;
import java.util.List;

import cn.gz.ibix.ibix_library.bean.PageBean;
import cn.gz.ibix.library.http.ParameterizedTypeImpl;

/**
 * 项目名称：android_tool
 * <br>类描述：返回数据单条数据
 * <br>创建人：htliu
 * <br>创建时间：2019/7/10 16:19
 * <br>修改人:
 * <br>修改时间：2019/7/10 16:19
 * <br>修改备注：
 * <br>@version
 *
 * @param <T>
 */
public abstract class PageConvertResponse<T> extends BaseConvertResponse<PageBean<T>> {

    @Override
    protected PageBean<T> handJson(JsonElement data) {
        PageBean<T> page = new PageBean<>();
        JsonObject jsonObject = data.getAsJsonObject();
        page.current(jsonObject.get("current").getAsInt())
                .total(jsonObject.get("total").getAsInt());
        Type type = new ParameterizedTypeImpl(List.class, new Class[]{handleClazz()});
        List<T> list = gson.fromJson(jsonObject.get("list"), type);
        page.list(list);
        return page;
    }

}
